package com.nexgo.payment.trans.detail;

import com.nexgo.payment.BasePresenter;
import com.nexgo.payment.BaseView;
import com.nexgo.payment.databases.TransRecord;

import java.util.List;

/**
 * 交易列表接口
 *
 * @author 谭忠扬-YuriTam
 * @time 2017年08月14日
 */
public class TransListContract {

    interface View extends BaseView<TransListPresenter> {

        /**
         * 返回交易记录列表
         *
         * @param transList 交易列表
         * @param isSearch  是否查询操作（查询成功返回一条记录）
         */
        void onTransList(List<TransRecord> transList, boolean isSearch);

        /**
         * 清空列表数据
         */
        void showClearList();

        /**
         * 提示没有更多数据
         */
        void showNotMoreData();

        /**
         * 提示暂无交易记录
         */
        void showEmptyList();

        /**
         * 提示该流水数据为空
         */
        void showEmptyItem();

        /**
         * 提示输入不可为空
         */
        void showEmptyInput();

        /**
         * 提示输入格式错误
         */
        void showErrInput();

        /**
         * 打印弹出层
         *
         * @param active
         */
        void setPrintingIndicator(boolean active);

        /**
         * 打印缺纸
         */
        void showPrintLackPaper();

        /**
         * 打印失败
         *
         * @param failDesc 失败描述信息
         */
        void showPrintFail(String failDesc);
    }

    interface Presenter extends BasePresenter {

        /**
         * 重新获取交易列表
         */
        void refreshTransList();

        /**
         * 查询首页交易记录(默认每页为20条)
         */
        void getTransList();

        /**
         * 查询更多数据（即下页的数据）
         */
        void getMoreTransList();

        /**
         * 根据凭证号查询该交易记录
         */
        void getTransRecord(String traceNum);

        /**
         * 打印明细
         */
        void printDetail();

        /**
         * 取消打印明细
         */
        void cancelPrintDetail();

        /**
         * 缺纸后装纸继续打印
         */
        void continuePrintDetail();
    }
}
